<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // es6新增数据类型 Symbol  bigInt
    // 1.Symbol  是简单的数据类型  独一无二的值  随机生成一个唯一的id
    // 语法:
    // let s = Symbol()
    // console.log(s);
    // let s2 = Symbol()
    // console.log(s === s2); // false

    // 1.1 可以给出标识符 类似于 注释 没有实际意义
    // let s = Symbol('key')
    // let s2 = Symbol('key')
    // console.log(s === s2); // false


    // 1.2 使用场景
    // 模拟私有成员   __proto__  _this
    let obj = {
      name: "张三",
      age: 20,
      [Symbol()]: "100kg"
    }
    console.log(obj);
    console.log(obj.name);
    console.log(obj[Symbol()]) // und

    //  特别需求  
    let cate = {
      // Symbol() 代表唯一的值
      person: Symbol(),
      animal: Symbol()
    }

    function getCate (type) {
      if (type === cate.person) {
        console.log("人类")
      } else {
        console.log("动物")
      }
    }
    getCate(cate.person);
    getCate(cate.animal);


    // 1.3 Symbol 类型
    let s = Symbol();
    console.log(s);
    console.log(typeof s); // symbol


    // js 最大支持  2 ** 1024 次方  如果比这个大 就返还 infinity  
    // js 在大于 2 ** 53  计算就不准确 ；

    // let num = 2 ** 53;

    // console.log(num);
    // console.log(num+1);
    // console.log(num+2);
    // console.log(num +3); 精度不精确了

    //  2. ES6 新的数据类型 BigInt  ：没有位数限制 
    // 创建方式 
    // 1.直接创建
    // let num = BigInt(2 ** 53);
    // console.log(num);

    // console.log(typeof num);

    // 2.通过数字后加 n
    // let num = 100n;
    // console.log(num);

    // bigInt 运算 只能和 bigInt 运算；
    // let num1 = 100n;
    // let num2 = 200n;
    // let res = num1 + num2;
    // console.log(res);
    // // let num = 2n ** 1024n;
    // let num = 2n ** 53n;
    // console.log(num);
    // console.log(num + 1n);
    // console.log(num + 2n);
    // console.log(num + 3n);



  </script>
</body>

</html>